package mysql

import (
	"context"
	"gorm.io/gorm"
	"mall-backend/domain/repository/dao"
)

var _ dao.IUsersRepo = new(UsersRepo)

func NewUsersRepo(db *gorm.DB) dao.IUsersRepo {
	return &UsersRepo{
		db: db,
	}
}

type UsersRepo struct {
	db *gorm.DB
}

func (d UsersRepo) Add(ctx context.Context, users dao.Users) error {
	return d.db.WithContext(ctx).Model(&dao.Users{}).Debug().Create(&users).Error
}

func (d UsersRepo) List(ctx context.Context, page, size int) ([]dao.Users, int64, error) {
	var (
		list  []dao.Users
		count int64
	)
	err := d.db.WithContext(ctx).Model(&dao.Users{}).Debug().Offset((page - 1) * size).Limit(size).Find(&list).Offset(-1).Limit(-1).Count(&count).Error
	return list, count, err
}
